﻿
namespace PaceR.Core.Interfaces.EntityProcessing
{
    public interface IEntityWorker<T>
    {
        IEntityWorker<T> AddCommand<R>(IEntityCommand<T, R> command, bool abortOnError = false);
        IResult<T> PerformWork();
        IResult<T> UndoAllWork();
        IResult<T> UndoAllFrom(int position);
        IResult<T> UndoAllAfter(int position);
        IResult<T> UndoAt(int position);
    }
}
